﻿using System;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata;
using SheXiangTou.Services;

namespace SheXiangTou.Beans.CloudModel
{
    public partial class cloud_gateContext : DbContext
    {
        public cloud_gateContext()
        {
        }

        public cloud_gateContext(DbContextOptions<cloud_gateContext> options)
            : base(options)
        {
        }

        public virtual DbSet<TAlarm> TAlarm { get; set; }
        public virtual DbSet<TCar> TCar { get; set; }
        public virtual DbSet<TCarRecord> TCarRecord { get; set; }
        public virtual DbSet<TDevice> TDevice { get; set; }
        public virtual DbSet<TDeviceDictionary> TDeviceDictionary { get; set; }
        public virtual DbSet<TEnterRecord> TEnterRecord { get; set; }
        public virtual DbSet<TJobPlan> TJobPlan { get; set; }
        public virtual DbSet<TLoginLog> TLoginLog { get; set; }
        public virtual DbSet<TOperateLog> TOperateLog { get; set; }
        public virtual DbSet<TProjectStaff> TProjectStaff { get; set; }
        public virtual DbSet<TProjectinfo> TProjectinfo { get; set; }
        public virtual DbSet<TRolePower> TRolePower { get; set; }
        public virtual DbSet<TRoleinfo> TRoleinfo { get; set; }
        public virtual DbSet<TSysDictionary> TSysDictionary { get; set; }
        public virtual DbSet<TSysLog> TSysLog { get; set; }
        public virtual DbSet<TTeamStaff> TTeamStaff { get; set; }
        public virtual DbSet<TTeaminfo> TTeaminfo { get; set; }
        public virtual DbSet<TUserRole> TUserRole { get; set; }
        public virtual DbSet<TUserinfo> TUserinfo { get; set; }
        public virtual DbSet<TbAttenndanceset> TbAttenndanceset { get; set; }
        public virtual DbSet<TvEnteroutnum> TvEnteroutnum { get; set; }
        public virtual DbSet<TvSsattenndance> TvSsattenndance { get; set; }
        public virtual DbSet<TvSsenter> TvSsenter { get; set; }
        public virtual DbSet<TvSsresponse> TvSsresponse { get; set; }
        public virtual DbSet<TvZcuserinfo> TvZcuserinfo { get; set; }
        public virtual DbSet<VAlarm> VAlarm { get; set; }
        public virtual DbSet<VDevice> VDevice { get; set; }
        public virtual DbSet<VUserProjectinfo> VUserProjectinfo { get; set; }
        public virtual DbSet<VWxuserinfo> VWxuserinfo { get; set; }

        protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
        {
            if (!optionsBuilder.IsConfigured)
            {
                optionsBuilder.UseMySql(ConfigerService.Cloud_Database);
            }
        }

        protected override void OnModelCreating(ModelBuilder modelBuilder)
        {
            modelBuilder.Entity<TAlarm>(entity =>
            {
                entity.ToTable("t_alarm");

                entity.HasIndex(e => e.Phone)
                    .HasName("idx_user_idcard");

                entity.HasIndex(e => e.ProjectId)
                    .HasName("idx_project_num");

                entity.Property(e => e.Id).HasColumnName("id");

                entity.Property(e => e.Action)
                    .HasColumnName("action")
                    .HasColumnType("enum('进','出')")
                    .HasCharSet("utf8mb4")
                    .HasCollation("utf8mb4_general_ci");

                entity.Property(e => e.AlarmInfo)
                    .HasColumnName("alarm_info")
                    .HasColumnType("varchar(50)")
                    .HasComment("告警信息")
                    .HasCharSet("utf8mb4")
                    .HasCollation("utf8mb4_general_ci");

                entity.Property(e => e.AlarmType)
                    .HasColumnName("alarm_type")
                    .HasComment("报警类型");

                entity.Property(e => e.CreateTime)
                    .HasColumnName("create_time")
                    .HasColumnType("datetime");

                entity.Property(e => e.Flag)
                    .HasColumnName("flag")
                    .HasDefaultValueSql("'0'")
                    .HasComment("0为默认，1为已移除");

                entity.Property(e => e.ImgUrl)
                    .IsRequired()
                    .HasColumnName("img_url")
                    .HasColumnType("mediumtext")
                    .HasComment("阿里云图片地址")
                    .HasCharSet("utf8mb4")
                    .HasCollation("utf8mb4_general_ci");

                entity.Property(e => e.Phone)
                    .HasColumnName("phone")
                    .HasColumnType("varchar(18)")
                    .HasComment("手机号（人填）")
                    .HasCharSet("utf8mb4")
                    .HasCollation("utf8mb4_general_ci");

                entity.Property(e => e.ProjectId)
                    .HasColumnName("project_id")
                    .HasComment("项目id");

                entity.Property(e => e.Status)
                    .HasColumnName("status")
                    .HasComment("项目负责人未处理为0，已处理为1");

                entity.Property(e => e.Type)
                    .HasColumnName("type")
                    .HasComment("告警来源  人闸为0  车闸为1");
            });

            modelBuilder.Entity<TCar>(entity =>
            {
                entity.HasKey(e => new { e.Id, e.DriverName })
                    .HasName("PRIMARY")
                    .HasAnnotation("MySql:IndexPrefixLength", new[] { 0, 0 });

                entity.ToTable("t_car");

                entity.HasComment("车辆信息");

                entity.Property(e => e.Id)
                    .HasColumnName("id")
                    .ValueGeneratedOnAdd();

                entity.Property(e => e.DriverName)
                    .HasColumnName("driverName")
                    .HasColumnType("varchar(20)")
                    .HasCharSet("utf8mb4")
                    .HasCollation("utf8mb4_general_ci");

                entity.Property(e => e.Brand)
                    .HasColumnName("brand")
                    .HasColumnType("varchar(20)")
                    .HasCharSet("utf8mb4")
                    .HasCollation("utf8mb4_general_ci");

                entity.Property(e => e.CarNumber)
                    .HasColumnName("car_number")
                    .HasColumnType("varchar(15)")
                    .HasComment("杞︾墝鍙?")
                    .HasCharSet("utf8mb4")
                    .HasCollation("utf8mb4_general_ci");

                entity.Property(e => e.CarType)
                    .HasColumnName("car_type")
                    .HasColumnType("varchar(20)")
                    .HasCharSet("utf8mb4")
                    .HasCollation("utf8mb4_general_ci");

                entity.Property(e => e.CarUnit)
                    .HasColumnName("carUnit")
                    .HasColumnType("varchar(100)")
                    .HasComment("鍨嬪彿锛岄鑹诧紝鍘傚")
                    .HasCharSet("utf8mb4")
                    .HasCollation("utf8mb4_general_ci");

                entity.Property(e => e.CreateTime)
                    .HasColumnName("create_time")
                    .HasColumnType("datetime");

                entity.Property(e => e.DriverCard)
                    .HasColumnName("driverCard")
                    .HasColumnType("varchar(18)")
                    .HasCharSet("utf8mb4")
                    .HasCollation("utf8mb4_general_ci");

                entity.Property(e => e.DriverCertificate)
                    .HasColumnName("driverCertificate")
                    .HasColumnType("varchar(50)")
                    .HasCharSet("utf8mb4")
                    .HasCollation("utf8mb4_general_ci");

                entity.Property(e => e.DriverJob)
                    .HasColumnName("driverJob")
                    .HasColumnType("varchar(20)")
                    .HasCharSet("utf8mb4")
                    .HasCollation("utf8mb4_general_ci");

                entity.Property(e => e.EndValidity)
                    .HasColumnName("endValidity")
                    .HasColumnType("datetime");

                entity.Property(e => e.PowerByUserName)
                    .HasColumnName("powerByUserName")
                    .HasColumnType("varchar(20)")
                    .HasCharSet("utf8mb4")
                    .HasCollation("utf8mb4_general_ci");

                entity.Property(e => e.ProjectId).HasColumnName("project_id");

                entity.Property(e => e.RfidCard)
                    .HasColumnName("rfidCard")
                    .HasColumnType("varchar(50)")
                    .HasCharSet("utf8mb4")
                    .HasCollation("utf8mb4_general_ci");

                entity.Property(e => e.StartValidity)
                    .HasColumnName("startValidity")
                    .HasColumnType("datetime");

                entity.Property(e => e.State)
                    .HasColumnName("state")
                    .HasComment("0娑撳瓨妞?1瀹搞儳鈻兼潪锕佺窢(濮濓絽绱℃潪锕佺窢);");

                entity.Property(e => e.UpdateTime)
                    .HasColumnName("update_time")
                    .HasColumnType("datetime");

                entity.Property(e => e.ValidityType)
                    .HasColumnName("validityType")
                    .HasColumnType("varchar(20)")
                    .HasCharSet("utf8mb4")
                    .HasCollation("utf8mb4_general_ci");
            });

            modelBuilder.Entity<TCarRecord>(entity =>
            {
                entity.ToTable("t_car_record");

                entity.Property(e => e.Id).HasColumnName("id");

                entity.Property(e => e.CarImg)
                    .HasColumnName("carImg")
                    .HasColumnType("varchar(200)")
                    .HasComment("鏉烇箒绶犻幎鎾村閸ュ墽澧?")
                    .HasCharSet("utf8mb4")
                    .HasCollation("utf8mb4_general_ci");

                entity.Property(e => e.CarNum)
                    .HasColumnName("carNum")
                    .HasColumnType("varchar(15)")
                    .HasComment("车牌号,与rfid必传一个")
                    .HasCharSet("utf8mb4")
                    .HasCollation("utf8mb4_general_ci");

                entity.Property(e => e.CarType)
                    .HasColumnName("carType")
                    .HasColumnType("varchar(20)")
                    .HasComment("车辆类型")
                    .HasCharSet("utf8mb4")
                    .HasCollation("utf8mb4_general_ci");

                entity.Property(e => e.CreateTime)
                    .HasColumnName("create_time")
                    .HasColumnType("datetime");

                entity.Property(e => e.DriverImg)
                    .HasColumnName("driverImg")
                    .HasColumnType("varchar(200)")
                    .HasComment("椹鹃┒鍛樻姄鎷嶅浘鐗?")
                    .HasCharSet("utf8mb4")
                    .HasCollation("utf8mb4_general_ci");

                entity.Property(e => e.DriverName)
                    .IsRequired()
                    .HasColumnName("driverName")
                    .HasColumnType("varchar(20)")
                    .HasComment("驾驶员姓名")
                    .HasCharSet("utf8mb4")
                    .HasCollation("utf8mb4_general_ci");

                entity.Property(e => e.PassTime)
                    .HasColumnName("passTime")
                    .HasColumnType("datetime")
                    .HasComment("进出时间");

                entity.Property(e => e.PassType)
                    .IsRequired()
                    .HasColumnName("passType")
                    .HasColumnType("varchar(10)")
                    .HasComment("进出类型")
                    .HasCharSet("utf8mb4")
                    .HasCollation("utf8mb4_general_ci");

                entity.Property(e => e.ProjectId).HasColumnName("project_id");

                entity.Property(e => e.ProjectName)
                    .IsRequired()
                    .HasColumnName("projectName")
                    .HasColumnType("varchar(100)")
                    .HasComment("站点名称")
                    .HasCharSet("utf8mb4")
                    .HasCollation("utf8mb4_general_ci");

                entity.Property(e => e.RfidCard)
                    .HasColumnName("rfidCard")
                    .HasColumnType("varchar(50)")
                    .HasComment("rfid卡号,与车牌号必传一个")
                    .HasCharSet("utf8mb4")
                    .HasCollation("utf8mb4_general_ci");
            });

            modelBuilder.Entity<TDevice>(entity =>
            {
                entity.ToTable("t_device");

                entity.HasComment("工具设备表");

                entity.HasIndex(e => e.SerialNumber)
                    .HasName("uk_serial_number")
                    .IsUnique();

                entity.Property(e => e.Id).HasColumnName("id");

                entity.Property(e => e.CreateTime)
                    .HasColumnName("create_time")
                    .HasColumnType("datetime");

                entity.Property(e => e.CreateUserId).HasColumnName("createUserId");

                entity.Property(e => e.DeviceDescription)
                    .HasColumnName("device_description")
                    .HasColumnType("varchar(255)")
                    .HasComment("设备型号描述")
                    .HasCharSet("utf8mb4")
                    .HasCollation("utf8mb4_general_ci");

                entity.Property(e => e.DeviceName)
                    .IsRequired()
                    .HasColumnName("device_name")
                    .HasColumnType("varchar(200)")
                    .HasComment("设备名称")
                    .HasCharSet("utf8mb4")
                    .HasCollation("utf8mb4_general_ci");

                entity.Property(e => e.DevicePrice)
                    .HasColumnName("device_price")
                    .HasColumnType("decimal(10,2)")
                    .HasComment("设备价格");

                entity.Property(e => e.DeviceState)
                    .HasColumnName("device_state")
                    .HasColumnType("varchar(255)")
                    .HasComment(@" 设备状态：1，在线2，离线3，使用中4，空闲
")
                    .HasCharSet("utf8mb4")
                    .HasCollation("utf8mb4_general_ci");

                entity.Property(e => e.DeviceType)
                    .HasColumnName("device_type")
                    .HasComment("设备归类");

                entity.Property(e => e.ProjectId).HasColumnName("project_id");

                entity.Property(e => e.Remark)
                    .HasColumnName("remark")
                    .HasColumnType("varchar(255)")
                    .HasComment("异常备注")
                    .HasCharSet("utf8mb4")
                    .HasCollation("utf8mb4_general_ci");

                entity.Property(e => e.SerialNumber)
                    .HasColumnName("serial_number")
                    .HasColumnType("varchar(30)")
                    .HasComment("设备序列号")
                    .HasCharSet("utf8mb4")
                    .HasCollation("utf8mb4_general_ci");

                entity.Property(e => e.UpdateTime)
                    .HasColumnName("update_time")
                    .HasColumnType("datetime");

                entity.Property(e => e.UserId)
                    .HasColumnName("user_id")
                    .HasComment("外键 - t_userinfo的id");
            });

            modelBuilder.Entity<TDeviceDictionary>(entity =>
            {
                entity.ToTable("t_device_dictionary");

                entity.Property(e => e.Id).HasColumnName("id");

                entity.Property(e => e.CreateTime)
                    .HasColumnName("create_time")
                    .HasColumnType("datetime");

                entity.Property(e => e.CreateUserId).HasColumnName("createUserId");

                entity.Property(e => e.Remark)
                    .HasColumnName("remark")
                    .HasColumnType("varchar(100)")
                    .HasComment("备注")
                    .HasCharSet("utf8mb4")
                    .HasCollation("utf8mb4_general_ci");

                entity.Property(e => e.TypeName)
                    .IsRequired()
                    .HasColumnName("typeName")
                    .HasColumnType("varchar(20)")
                    .HasComment("类型名称")
                    .HasCharSet("utf8mb4")
                    .HasCollation("utf8mb4_general_ci");

                entity.Property(e => e.UpdateTime)
                    .HasColumnName("update_time")
                    .HasColumnType("datetime");
            });

            modelBuilder.Entity<TEnterRecord>(entity =>
            {
                entity.ToTable("t_enter_record");

                entity.HasComment("安全门禁进出入记录");

                entity.Property(e => e.Id).HasColumnName("id");

                entity.Property(e => e.CreateTime)
                    .HasColumnName("create_time")
                    .HasColumnType("datetime");

                entity.Property(e => e.Mask)
                    .HasColumnName("mask")
                    .HasColumnType("varchar(1)")
                    .HasComment(" 0未戴 1戴了")
                    .HasCharSet("utf8mb4")
                    .HasCollation("utf8mb4_general_ci");

                entity.Property(e => e.PassTime)
                    .HasColumnName("passTime")
                    .HasColumnType("datetime");

                entity.Property(e => e.PassType)
                    .IsRequired()
                    .HasColumnName("passType")
                    .HasColumnType("varchar(10)")
                    .HasComment("进入;出去")
                    .HasCharSet("utf8mb4")
                    .HasCollation("utf8mb4_general_ci");

                entity.Property(e => e.Phone)
                    .IsRequired()
                    .HasColumnName("phone")
                    .HasColumnType("varchar(18)")
                    .HasComment("身份证号")
                    .HasCharSet("utf8mb4")
                    .HasCollation("utf8mb4_general_ci");

                entity.Property(e => e.ProjectId)
                    .HasColumnName("projectId")
                    .HasComment("项目ID");

                entity.Property(e => e.ProjectName)
                    .HasColumnName("projectName")
                    .HasColumnType("varchar(50)")
                    .HasCharSet("utf8mb4")
                    .HasCollation("utf8mb4_general_ci");

                entity.Property(e => e.Temperature)
                    .HasColumnName("temperature")
                    .HasColumnType("varchar(10)")
                    .HasCharSet("utf8mb4")
                    .HasCollation("utf8mb4_general_ci");

                entity.Property(e => e.UserImg)
                    .HasColumnName("userImg")
                    .HasColumnType("text")
                    .HasCharSet("utf8mb4")
                    .HasCollation("utf8mb4_general_ci");

                entity.Property(e => e.UserName)
                    .IsRequired()
                    .HasColumnName("userName")
                    .HasColumnType("varchar(20)")
                    .HasComment("姓名")
                    .HasCharSet("utf8mb4")
                    .HasCollation("utf8mb4_general_ci");
            });

            modelBuilder.Entity<TJobPlan>(entity =>
            {
                entity.ToTable("t_job_plan");

                entity.Property(e => e.Id).HasColumnName("id");

                entity.Property(e => e.Charge)
                    .HasColumnName("charge")
                    .HasColumnType("varchar(20)")
                    .HasComment("责任人")
                    .HasCharSet("utf8mb4")
                    .HasCollation("utf8mb4_general_ci");

                entity.Property(e => e.ChargeId)
                    .HasColumnName("chargeId")
                    .HasComment("责任人ID");

                entity.Property(e => e.Content)
                    .HasColumnName("content")
                    .HasColumnType("varchar(500)")
                    .HasComment("作业内容")
                    .HasCharSet("utf8mb4")
                    .HasCollation("utf8mb4_general_ci");

                entity.Property(e => e.CreateTime)
                    .HasColumnName("create_time")
                    .HasColumnType("datetime");

                entity.Property(e => e.ProjectId)
                    .HasColumnName("project_id")
                    .HasComment("项目ID");

                entity.Property(e => e.Remark)
                    .HasColumnName("remark")
                    .HasColumnType("varchar(100)")
                    .HasComment("备注")
                    .HasCharSet("utf8mb4")
                    .HasCollation("utf8mb4_general_ci");

                entity.Property(e => e.StartDate)
                    .HasColumnName("start_date")
                    .HasColumnType("datetime")
                    .HasComment("作业内容起始时间");

                entity.Property(e => e.Status)
                    .HasColumnName("status")
                    .HasComment("作业内容完成状态：0为未完成，1为完成");

                entity.Property(e => e.Title)
                    .HasColumnName("title")
                    .HasColumnType("varchar(100)")
                    .HasComment("作业标题")
                    .HasCharSet("utf8mb4")
                    .HasCollation("utf8mb4_general_ci");

                entity.Property(e => e.UpdateTime)
                    .HasColumnName("update_time")
                    .HasColumnType("datetime");
            });

            modelBuilder.Entity<TLoginLog>(entity =>
            {
                entity.ToTable("t_login_log");

                entity.HasIndex(e => e.UserId)
                    .HasName("idx_user_id");

                entity.Property(e => e.Id).HasColumnName("id");

                entity.Property(e => e.CreateTime)
                    .HasColumnName("create_time")
                    .HasColumnType("datetime");

                entity.Property(e => e.UserId).HasColumnName("user_id");
            });

            modelBuilder.Entity<TOperateLog>(entity =>
            {
                entity.ToTable("t_operate_log");

                entity.Property(e => e.Id).HasColumnName("id");

                entity.Property(e => e.CreateTime)
                    .HasColumnName("create_time")
                    .HasColumnType("datetime");

                entity.Property(e => e.Log)
                    .HasColumnName("log")
                    .HasColumnType("varchar(500)")
                    .HasComment("日志内容")
                    .HasCharSet("utf8mb4")
                    .HasCollation("utf8mb4_general_ci");

                entity.Property(e => e.Module)
                    .HasColumnName("module")
                    .HasColumnType("varchar(50)")
                    .HasComment("模块")
                    .HasCharSet("utf8mb4")
                    .HasCollation("utf8mb4_general_ci");

                entity.Property(e => e.OperatorIdcard)
                    .IsRequired()
                    .HasColumnName("operator_idcard")
                    .HasColumnType("varchar(36)")
                    .HasComment("操作员身份证号")
                    .HasCharSet("utf8mb4")
                    .HasCollation("utf8mb4_general_ci");

                entity.Property(e => e.OperatorName)
                    .HasColumnName("operator_name")
                    .HasColumnType("varchar(50)")
                    .HasComment("操作员姓名")
                    .HasCharSet("utf8mb4")
                    .HasCollation("utf8mb4_general_ci");

                entity.Property(e => e.OperatorRole)
                    .HasColumnName("operator_role")
                    .HasColumnType("varchar(50)")
                    .HasComment("操作员角色")
                    .HasCharSet("utf8mb4")
                    .HasCollation("utf8mb4_general_ci");
            });

            modelBuilder.Entity<TProjectStaff>(entity =>
            {
                entity.ToTable("t_project_staff");

                entity.HasComment("关联工程和施工人员 t_projectinfo 和 t_userinfo ");

                entity.HasIndex(e => e.ProjectId)
                    .HasName("project_id");

                entity.HasIndex(e => e.UserId)
                    .HasName("user_id");

                entity.Property(e => e.Id).HasColumnName("id");

                entity.Property(e => e.AreaId)
                    .HasColumnName("area_id")
                    .HasColumnType("varchar(30)")
                    .HasComment("工人进入多个区域的权限,多个区域用 ‘-’ 分割")
                    .HasCharSet("utf8mb4")
                    .HasCollation("utf8mb4_general_ci");

                entity.Property(e => e.CreateTime)
                    .HasColumnName("create_time")
                    .HasColumnType("datetime");

                entity.Property(e => e.Del)
                    .HasColumnName("del")
                    .HasColumnType("tinyint(1) unsigned zerofill")
                    .HasComment("0:有效;1已删除");

                entity.Property(e => e.InterimEndDate)
                    .HasColumnName("interim_end_date")
                    .HasColumnType("datetime")
                    .HasComment("临时人员有效结束时间");

                entity.Property(e => e.InterimStartDate)
                    .HasColumnName("interim_start_date")
                    .HasColumnType("datetime")
                    .HasComment("临时人员有效开始时间");

                entity.Property(e => e.ProjectId)
                    .HasColumnName("project_id")
                    .HasComment("外键 t_projectinfo的id");

                entity.Property(e => e.TeamId).HasColumnName("team_id");

                entity.Property(e => e.UpdateTime)
                    .HasColumnName("update_time")
                    .HasColumnType("datetime");

                entity.Property(e => e.UserId)
                    .HasColumnName("user_id")
                    .HasComment("外键 t_userinfo的id");

                entity.Property(e => e.UserType)
                    .HasColumnName("user_type")
                    .HasComment("0-员工;1-项目负责人;2-临时人员");
            });

            modelBuilder.Entity<TProjectinfo>(entity =>
            {
                entity.ToTable("t_projectinfo");

                entity.HasComment("项目/工程 信息");

                entity.Property(e => e.Id).HasColumnName("id");

                entity.Property(e => e.CreateTime)
                    .HasColumnName("create_time")
                    .HasColumnType("datetime");

                entity.Property(e => e.DesignType)
                    .HasColumnName("design_type")
                    .HasColumnType("varchar(50)")
                    .HasComment("组塔方式")
                    .HasCharSet("utf8mb4")
                    .HasCollation("utf8mb4_general_ci");

                entity.Property(e => e.EndDate)
                    .HasColumnName("end_date")
                    .HasColumnType("date")
                    .HasComment("计划结束日期");

                entity.Property(e => e.Latitude)
                    .HasColumnName("latitude")
                    .HasColumnType("decimal(64,0)")
                    .HasComment("纬度");

                entity.Property(e => e.Longitude)
                    .HasColumnName("longitude")
                    .HasColumnType("decimal(64,0)")
                    .HasComment("经度");

                entity.Property(e => e.ProjectAddress)
                    .HasColumnName("project_address")
                    .HasColumnType("varchar(255)")
                    .HasComment("工程地址")
                    .HasCharSet("utf8mb4")
                    .HasCollation("utf8mb4_general_ci");

                entity.Property(e => e.ProjectDesc)
                    .HasColumnName("project_desc")
                    .HasColumnType("varchar(10240)")
                    .HasCharSet("utf8mb4")
                    .HasCollation("utf8mb4_general_ci");

                entity.Property(e => e.ProjectName)
                    .IsRequired()
                    .HasColumnName("project_name")
                    .HasColumnType("varchar(255)")
                    .HasComment("工程名称")
                    .HasCharSet("utf8mb4")
                    .HasCollation("utf8mb4_general_ci");

                entity.Property(e => e.ProjectNum)
                    .IsRequired()
                    .HasColumnName("project_num")
                    .HasColumnType("varchar(20)")
                    .HasComment("工程编号")
                    .HasCharSet("utf8mb4")
                    .HasCollation("utf8mb4_general_ci");

                entity.Property(e => e.RealEndDate)
                    .HasColumnName("real_end_date")
                    .HasColumnType("date")
                    .HasComment("实际结束时间");

                entity.Property(e => e.RealStartDate)
                    .HasColumnName("real_start_date")
                    .HasColumnType("date")
                    .HasComment("实际开始时间");

                entity.Property(e => e.SecurityTip)
                    .HasColumnName("security_tip")
                    .HasColumnType("varchar(1024)")
                    .HasComment("安全提示")
                    .HasCharSet("utf8mb4")
                    .HasCollation("utf8mb4_general_ci");

                entity.Property(e => e.StartDate)
                    .HasColumnName("start_date")
                    .HasColumnType("date")
                    .HasComment("计划开始日期");

                entity.Property(e => e.State)
                    .HasColumnName("state")
                    .HasDefaultValueSql("'0'")
                    .HasComment("状态:0-未开始;1-施工中;2-完工;3-删除");

                entity.Property(e => e.UpdateTime)
                    .HasColumnName("update_time")
                    .HasColumnType("datetime");
            });

            modelBuilder.Entity<TRolePower>(entity =>
            {
                entity.ToTable("t_role_power");

                entity.HasComment("关联角色和权限的表");

                entity.HasIndex(e => new { e.RoleId, e.PowerId })
                    .HasName("uk_roleid_powerid")
                    .IsUnique()
                    .HasAnnotation("MySql:IndexPrefixLength", new[] { 0, 0 });

                entity.Property(e => e.Id).HasColumnName("id");

                entity.Property(e => e.CreateTime)
                    .HasColumnName("create_time")
                    .HasColumnType("datetime");

                entity.Property(e => e.PowerId)
                    .HasColumnName("power_id")
                    .HasComment("权限id");

                entity.Property(e => e.RoleId)
                    .HasColumnName("role_id")
                    .HasComment("角色id");

                entity.Property(e => e.UpdateTime)
                    .HasColumnName("update_time")
                    .HasColumnType("datetime");
            });

            modelBuilder.Entity<TRoleinfo>(entity =>
            {
                entity.ToTable("t_roleinfo");

                entity.HasComment("用户角色信息表");

                entity.HasIndex(e => e.RoleNameCn)
                    .HasName("uk_rolename_cn")
                    .IsUnique();

                entity.HasIndex(e => e.RoleNameEn)
                    .HasName("uk_rolename_en")
                    .IsUnique();

                entity.Property(e => e.Id).HasColumnName("id");

                entity.Property(e => e.CreateTime)
                    .HasColumnName("create_time")
                    .HasColumnType("datetime");

                entity.Property(e => e.RoleNameCn)
                    .IsRequired()
                    .HasColumnName("role_name_cn")
                    .HasColumnType("varchar(30)")
                    .HasComment("中文角色名")
                    .HasCharSet("utf8mb4")
                    .HasCollation("utf8mb4_general_ci");

                entity.Property(e => e.RoleNameEn)
                    .IsRequired()
                    .HasColumnName("role_name_en")
                    .HasColumnType("varchar(30)")
                    .HasComment("英文角色名")
                    .HasCharSet("utf8mb4")
                    .HasCollation("utf8mb4_general_ci");

                entity.Property(e => e.UpdateTime)
                    .HasColumnName("update_time")
                    .HasColumnType("datetime");
            });

            modelBuilder.Entity<TSysDictionary>(entity =>
            {
                entity.ToTable("t_sys_dictionary");

                entity.HasComment("数据字典");

                entity.HasIndex(e => new { e.DataType, e.DataValue })
                    .HasName("uk_data_type_value")
                    .IsUnique()
                    .HasAnnotation("MySql:IndexPrefixLength", new[] { 0, 0 });

                entity.Property(e => e.Id).HasColumnName("id");

                entity.Property(e => e.CreateTime)
                    .HasColumnName("create_time")
                    .HasColumnType("datetime");

                entity.Property(e => e.DataType)
                    .IsRequired()
                    .HasColumnName("data_type")
                    .HasColumnType("varchar(20)")
                    .HasComment("数据类型")
                    .HasCharSet("utf8mb4")
                    .HasCollation("utf8mb4_general_ci");

                entity.Property(e => e.DataValue)
                    .IsRequired()
                    .HasColumnName("data_value")
                    .HasColumnType("varchar(20)")
                    .HasComment("数据值")
                    .HasCharSet("utf8mb4")
                    .HasCollation("utf8mb4_general_ci");

                entity.Property(e => e.IsDel)
                    .IsRequired()
                    .HasColumnName("is_del")
                    .HasColumnType("varchar(5)")
                    .HasDefaultValueSql("'''0'''")
                    .HasComment("閺勵垰鎯侀張澶嬫櫏:0閺堝鏅?1-瀹告彃鍨归梽?婢惰鲸鏅?")
                    .HasCharSet("utf8mb4")
                    .HasCollation("utf8mb4_general_ci");

                entity.Property(e => e.Remark)
                    .HasColumnName("remark")
                    .HasColumnType("varchar(100)")
                    .HasComment("备注")
                    .HasCharSet("utf8mb4")
                    .HasCollation("utf8mb4_general_ci");

                entity.Property(e => e.UpdateTime)
                    .HasColumnName("update_time")
                    .HasColumnType("datetime");
            });

            modelBuilder.Entity<TSysLog>(entity =>
            {
                entity.ToTable("t_sys_log");

                entity.HasComment("系统日志");

                entity.Property(e => e.Id).HasColumnName("id");

                entity.Property(e => e.CreateTime)
                    .HasColumnName("create_time")
                    .HasColumnType("datetime");

                entity.Property(e => e.Info)
                    .HasColumnName("info")
                    .HasColumnType("varchar(255)")
                    .HasCharSet("utf8mb4")
                    .HasCollation("utf8mb4_general_ci");

                entity.Property(e => e.Module)
                    .HasColumnName("module")
                    .HasColumnType("varchar(255)")
                    .HasCharSet("utf8mb4")
                    .HasCollation("utf8mb4_general_ci");
            });

            modelBuilder.Entity<TTeamStaff>(entity =>
            {
                entity.ToTable("t_team_staff");

                entity.Property(e => e.Id).HasColumnName("id");

                entity.Property(e => e.CreateTime)
                    .HasColumnName("create_time")
                    .HasColumnType("datetime");

                entity.Property(e => e.Principal)
                    .HasColumnName("principal")
                    .HasComment("0-普通工人;1；负责人");

                entity.Property(e => e.TeamId)
                    .HasColumnName("team_id")
                    .HasComment("队伍id:外键:sys_dictionary的value_type=‘team’的id");

                entity.Property(e => e.UpdateTime)
                    .HasColumnName("update_time")
                    .HasColumnType("datetime");

                entity.Property(e => e.UserId)
                    .HasColumnName("user_id")
                    .HasComment("队员id");
            });

            modelBuilder.Entity<TTeaminfo>(entity =>
            {
                entity.ToTable("t_teaminfo");

                entity.Property(e => e.Id).HasColumnName("id");

                entity.Property(e => e.CreateTime)
                    .HasColumnName("create_time")
                    .HasColumnType("datetime");

                entity.Property(e => e.EndDate)
                    .HasColumnName("end_date")
                    .HasColumnType("date");

                entity.Property(e => e.ProjectId)
                    .HasColumnName("project_id")
                    .HasComment("t_projectinfo鐨刬d");

                entity.Property(e => e.Remark)
                    .HasColumnName("remark")
                    .HasColumnType("varchar(100)")
                    .HasComment("备注")
                    .HasCharSet("utf8mb4")
                    .HasCollation("utf8mb4_general_ci");

                entity.Property(e => e.Score)
                    .HasColumnName("score")
                    .HasColumnType("varchar(20)")
                    .HasComment("总计评分")
                    .HasCharSet("utf8mb4")
                    .HasCollation("utf8mb4_general_ci");

                entity.Property(e => e.SignedBy)
                    .HasColumnName("signed_by")
                    .HasColumnType("varchar(20)")
                    .HasComment("评分人")
                    .HasCharSet("utf8mb4")
                    .HasCollation("utf8mb4_general_ci");

                entity.Property(e => e.SignedRemark)
                    .HasColumnName("signed_remark")
                    .HasColumnType("varchar(100)")
                    .HasComment("璇勫垎澶囨敞")
                    .HasCharSet("utf8mb4")
                    .HasCollation("utf8mb4_general_ci");

                entity.Property(e => e.StartDate)
                    .HasColumnName("start_date")
                    .HasColumnType("date");

                entity.Property(e => e.State).HasColumnName("state");

                entity.Property(e => e.TeamId)
                    .HasColumnName("team_id")
                    .HasComment("队伍id:");

                entity.Property(e => e.TeamRemark)
                    .HasColumnName("team_remark")
                    .HasColumnType("varchar(100)")
                    .HasCharSet("utf8mb4")
                    .HasCollation("utf8mb4_general_ci");

                entity.Property(e => e.UpdateTime)
                    .HasColumnName("update_time")
                    .HasColumnType("datetime");

                entity.Property(e => e.ValueRemark)
                    .HasColumnName("value_remark")
                    .HasColumnType("varchar(300)")
                    .HasCharSet("utf8mb4")
                    .HasCollation("utf8mb4_general_ci");
            });

            modelBuilder.Entity<TUserRole>(entity =>
            {
                entity.ToTable("t_user_role");

                entity.HasIndex(e => new { e.UserId, e.RoleId })
                    .HasName("uk_useridcard_roleid")
                    .IsUnique()
                    .HasAnnotation("MySql:IndexPrefixLength", new[] { 0, 0 });

                entity.Property(e => e.Id).HasColumnName("id");

                entity.Property(e => e.CreateTime)
                    .HasColumnName("create_time")
                    .HasColumnType("datetime");

                entity.Property(e => e.InterimEndDate)
                    .HasColumnName("interim_end_date")
                    .HasColumnType("date")
                    .HasComment("临时人员-允许失效时间");

                entity.Property(e => e.InterimStartDate)
                    .HasColumnName("interim_start_date")
                    .HasColumnType("date")
                    .HasComment("临时人员-允许生效时间");

                entity.Property(e => e.Official)
                    .HasColumnName("official")
                    .HasComment("0-临时;1-官方正式人员;");

                entity.Property(e => e.RoleId)
                    .HasColumnName("role_id")
                    .HasComment("角色id");

                entity.Property(e => e.UpdateTime)
                    .HasColumnName("update_time")
                    .HasColumnType("datetime");

                entity.Property(e => e.UserId)
                    .HasColumnName("user_id")
                    .HasComment("用户id");
            });

            modelBuilder.Entity<TUserinfo>(entity =>
            {
                entity.HasKey(e => new { e.Id, e.ProjectId })
                    .HasName("PRIMARY")
                    .HasAnnotation("MySql:IndexPrefixLength", new[] { 0, 0 });

                entity.ToTable("t_userinfo");

                entity.HasIndex(e => new { e.ProjectId, e.Idcard, e.Phone })
                    .HasName("uk_projectid")
                    .IsUnique()
                    .HasAnnotation("MySql:IndexPrefixLength", new[] { 0, 0, 0 });

                entity.Property(e => e.Id)
                    .HasColumnName("id")
                    .ValueGeneratedOnAdd();

                entity.Property(e => e.ProjectId).HasColumnName("project_id");

                entity.Property(e => e.BlackList)
                    .HasColumnName("black_list")
                    .HasDefaultValueSql("'0'")
                    .HasComment("黑名单，1为黑名单用户，0为正常用户");

                entity.Property(e => e.BodyExamine)
                    .HasColumnName("body_examine")
                    .HasColumnType("varchar(20)")
                    .HasComment("体检情况")
                    .HasCharSet("utf8mb4")
                    .HasCollation("utf8mb4_general_ci");

                entity.Property(e => e.Certificate)
                    .HasColumnName("certificate")
                    .HasColumnType("longtext")
                    .HasComment(@"资格证上传路径 Base64
")
                    .HasCharSet("utf8mb4")
                    .HasCollation("utf8mb4_general_ci");

                entity.Property(e => e.CertificateEffective)
                    .HasColumnName("certificate_effective")
                    .HasColumnType("datetime")
                    .HasComment("资格证有效过期日期");

                entity.Property(e => e.CertificateFlag)
                    .HasColumnName("certificate_flag")
                    .HasColumnType("varchar(2)")
                    .HasComment("是 否  ：是否为特种作业人员")
                    .HasCharSet("utf8mb4")
                    .HasCollation("utf8mb4_general_ci");

                entity.Property(e => e.Company)
                    .HasColumnName("company")
                    .HasColumnType("varchar(50)")
                    .HasComment("公司")
                    .HasCharSet("utf8mb4")
                    .HasCollation("utf8mb4_general_ci");

                entity.Property(e => e.CreateTime)
                    .HasColumnName("create_time")
                    .HasColumnType("datetime");

                entity.Property(e => e.Department)
                    .HasColumnName("department")
                    .HasColumnType("varchar(20)")
                    .HasDefaultValueSql("'0'")
                    .HasComment("0为普通员工1为超级管理员2为普通管理员")
                    .HasCharSet("utf8mb4")
                    .HasCollation("utf8mb4_general_ci");

                entity.Property(e => e.Email)
                    .HasColumnName("email")
                    .HasColumnType("varchar(30)")
                    .HasCharSet("utf8mb4")
                    .HasCollation("utf8mb4_general_ci");

                entity.Property(e => e.EndEffective)
                    .HasColumnName("end_effective")
                    .HasColumnType("datetime")
                    .HasComment("默认一年");

                entity.Property(e => e.Idcard)
                    .IsRequired()
                    .HasColumnName("idcard")
                    .HasColumnType("varchar(18)")
                    .HasComment("最长18个字符")
                    .HasCharSet("utf8mb4")
                    .HasCollation("utf8mb4_general_ci");

                entity.Property(e => e.Infractions)
                    .HasColumnName("infractions")
                    .HasDefaultValueSql("'0'")
                    .HasComment("违规次数");

                entity.Property(e => e.Insurance)
                    .HasColumnName("insurance")
                    .HasColumnType("varchar(20)")
                    .HasComment("保险")
                    .HasCharSet("utf8mb4")
                    .HasCollation("utf8mb4_general_ci");

                entity.Property(e => e.Issued)
                    .HasColumnName("issued")
                    .HasColumnType("int(1) unsigned zerofill")
                    .HasDefaultValueSql("'0'")
                    .HasComment("不需要");

                entity.Property(e => e.MainStaff)
                    .HasColumnName("main_staff")
                    .HasComment("不需要");

                entity.Property(e => e.Nation)
                    .HasColumnName("nation")
                    .HasColumnType("varchar(10)")
                    .HasComment("民族")
                    .HasCharSet("utf8mb4")
                    .HasCollation("utf8mb4_general_ci");

                entity.Property(e => e.Password)
                    .HasColumnName("password")
                    .HasColumnType("varchar(50)")
                    .HasCharSet("utf8mb4")
                    .HasCollation("utf8mb4_general_ci");

                entity.Property(e => e.Phone)
                    .IsRequired()
                    .HasColumnName("phone")
                    .HasColumnType("varchar(13)")
                    .HasCharSet("utf8mb4")
                    .HasCollation("utf8mb4_general_ci");

                entity.Property(e => e.Photo)
                    .HasColumnName("photo")
                    .HasColumnType("longtext")
                    .HasComment("图片转base64")
                    .HasCharSet("utf8mb4")
                    .HasCollation("utf8mb4_general_ci");

                entity.Property(e => e.ProjectName)
                    .HasColumnName("projectName")
                    .HasColumnType("varchar(50)")
                    .HasCharSet("utf8mb4")
                    .HasCollation("utf8mb4_general_ci");

                entity.Property(e => e.SafetyExam)
                    .HasColumnName("safety_exam")
                    .HasColumnType("varchar(20)")
                    .HasComment("不需要")
                    .HasCharSet("utf8mb4")
                    .HasCollation("utf8mb4_general_ci");

                entity.Property(e => e.Sex)
                    .HasColumnName("sex")
                    .HasColumnType("enum('男','女')")
                    .HasDefaultValueSql("'男'")
                    .HasComment("枚举:男\\女")
                    .HasCharSet("utf8mb4")
                    .HasCollation("utf8mb4_general_ci");

                entity.Property(e => e.StaffId)
                    .HasColumnName("staff_id")
                    .HasColumnType("varchar(20)")
                    .HasComment("不需要")
                    .HasCharSet("utf8mb4")
                    .HasCollation("utf8mb4_general_ci");

                entity.Property(e => e.StartEffective)
                    .HasColumnName("start_effective")
                    .HasColumnType("datetime")
                    .HasComment("起始时间当天");

                entity.Property(e => e.State)
                    .HasColumnName("state")
                    .HasDefaultValueSql("'1'")
                    .HasComment("用户状态:0删除;1在职;2离职/调岗");

                entity.Property(e => e.TeamId)
                    .HasColumnName("team_id")
                    .HasComment("不需要");

                entity.Property(e => e.UpdateTime)
                    .HasColumnName("update_time")
                    .HasColumnType("datetime");

                entity.Property(e => e.UserType)
                    .HasColumnName("user_type")
                    .HasComment("人员类型：56 为施工人员 57 为业主人员 58 为监理人员 62 为临时人员");

                entity.Property(e => e.Username)
                    .IsRequired()
                    .HasColumnName("username")
                    .HasColumnType("varchar(20)")
                    .HasDefaultValueSql("''")
                    .HasCharSet("utf8mb4")
                    .HasCollation("utf8mb4_general_ci");

                entity.Property(e => e.WorkType)
                    .IsRequired()
                    .HasColumnName("work_type")
                    .HasColumnType("varchar(20)")
                    .HasComment("工种;下拉选择 填入文字")
                    .HasCharSet("utf8mb4")
                    .HasCollation("utf8mb4_general_ci");
            });

            modelBuilder.Entity<TbAttenndanceset>(entity =>
            {
                entity.ToTable("tb_attenndanceset");

                entity.HasIndex(e => e.ProjectId)
                    .HasName("projectID")
                    .IsUnique();

                entity.Property(e => e.Id).HasColumnName("id");

                entity.Property(e => e.Createid)
                    .HasColumnName("createid")
                    .HasColumnType("varchar(18)")
                    .HasCharSet("utf8mb4")
                    .HasCollation("utf8mb4_0900_ai_ci");

                entity.Property(e => e.Createtime)
                    .HasColumnName("createtime")
                    .HasColumnType("datetime");

                entity.Property(e => e.Endtime)
                    .HasColumnName("endtime")
                    .HasColumnType("datetime")
                    .HasComment("下班时间");

                entity.Property(e => e.ProjectId).HasColumnName("projectId");

                entity.Property(e => e.Starttime)
                    .HasColumnName("starttime")
                    .HasColumnType("datetime")
                    .HasComment("上班时间");

                entity.Property(e => e.Updatetime)
                    .HasColumnName("updatetime")
                    .HasColumnType("datetime");
            });

            modelBuilder.Entity<TvEnteroutnum>(entity =>
            {
                entity.HasNoKey();

                entity.ToView("tv_enteroutnum");

                entity.Property(e => e.Enternum)
                    .HasColumnName("enternum")
                    .HasColumnType("decimal(23,0)");

                entity.Property(e => e.Outnum)
                    .HasColumnName("outnum")
                    .HasColumnType("decimal(23,0)");

                entity.Property(e => e.ProjectId)
                    .HasColumnName("projectId")
                    .HasComment("项目ID");
            });

            modelBuilder.Entity<TvSsattenndance>(entity =>
            {
                entity.HasNoKey();

                entity.ToView("tv_ssattenndance");

                entity.Property(e => e.Intime)
                    .HasColumnName("intime")
                    .HasColumnType("datetime");

                entity.Property(e => e.Outtime)
                    .HasColumnName("outtime")
                    .HasColumnType("datetime");

                entity.Property(e => e.Passtime)
                    .HasColumnName("passtime")
                    .HasColumnType("varchar(10)")
                    .HasCharSet("utf8")
                    .HasCollation("utf8_general_ci");

                entity.Property(e => e.Phone)
                    .IsRequired()
                    .HasColumnName("phone")
                    .HasColumnType("varchar(18)")
                    .HasComment("身份证号")
                    .HasCharSet("utf8mb4")
                    .HasCollation("utf8mb4_general_ci");

                entity.Property(e => e.ProjectId)
                    .HasColumnName("projectId")
                    .HasComment("项目ID");
            });

            modelBuilder.Entity<TvSsenter>(entity =>
            {
                entity.HasNoKey();

                entity.ToView("tv_ssenter");

                entity.Property(e => e.Intime)
                    .HasColumnName("intime")
                    .HasColumnType("varchar(13)")
                    .HasCharSet("utf8")
                    .HasCollation("utf8_general_ci");

                entity.Property(e => e.Outtime)
                    .HasColumnName("outtime")
                    .HasColumnType("varchar(13)")
                    .HasCharSet("utf8")
                    .HasCollation("utf8_general_ci");

                entity.Property(e => e.Passtime)
                    .HasColumnName("passtime")
                    .HasColumnType("varchar(10)")
                    .HasCharSet("utf8")
                    .HasCollation("utf8_general_ci");

                entity.Property(e => e.Phone)
                    .IsRequired()
                    .HasColumnName("phone")
                    .HasColumnType("varchar(18)")
                    .HasComment("身份证号")
                    .HasCharSet("utf8mb4")
                    .HasCollation("utf8mb4_general_ci");

                entity.Property(e => e.ProjectId)
                    .HasColumnName("projectId")
                    .HasComment("项目ID");
            });

            modelBuilder.Entity<TvSsresponse>(entity =>
            {
                entity.HasNoKey();

                entity.ToView("tv_ssresponse");

                entity.Property(e => e.Enterrecordnum).HasColumnName("enterrecordnum");

                entity.Property(e => e.PassTime)
                    .HasColumnName("passTime")
                    .HasColumnType("varchar(10)")
                    .HasCharSet("utf8")
                    .HasCollation("utf8_general_ci");

                entity.Property(e => e.ProjectId)
                    .HasColumnName("projectId")
                    .HasComment("项目ID");

                entity.Property(e => e.UserType)
                    .HasColumnName("user_type")
                    .HasComment("人员类型：56 为施工人员 57 为业主人员 58 为监理人员 62 为临时人员");
            });

            modelBuilder.Entity<TvZcuserinfo>(entity =>
            {
                entity.HasNoKey();

                entity.ToView("tv_zcuserinfo");

                entity.Property(e => e.BlackList)
                    .HasColumnName("black_list")
                    .HasDefaultValueSql("'0'")
                    .HasComment("黑名单，1为黑名单用户，0为正常用户");

                entity.Property(e => e.BodyExamine)
                    .HasColumnName("body_examine")
                    .HasColumnType("varchar(20)")
                    .HasComment("体检情况")
                    .HasCharSet("utf8mb4")
                    .HasCollation("utf8mb4_general_ci");

                entity.Property(e => e.Certificate)
                    .HasColumnName("certificate")
                    .HasColumnType("longtext")
                    .HasComment(@"资格证上传路径 Base64
")
                    .HasCharSet("utf8mb4")
                    .HasCollation("utf8mb4_general_ci");

                entity.Property(e => e.CertificateEffective)
                    .HasColumnName("certificate_effective")
                    .HasColumnType("datetime")
                    .HasComment("资格证有效过期日期");

                entity.Property(e => e.CertificateFlag)
                    .HasColumnName("certificate_flag")
                    .HasColumnType("varchar(2)")
                    .HasComment("是 否  ：是否为特种作业人员")
                    .HasCharSet("utf8mb4")
                    .HasCollation("utf8mb4_general_ci");

                entity.Property(e => e.Company)
                    .HasColumnName("company")
                    .HasColumnType("varchar(50)")
                    .HasComment("公司")
                    .HasCharSet("utf8mb4")
                    .HasCollation("utf8mb4_general_ci");

                entity.Property(e => e.CreateTime)
                    .HasColumnName("create_time")
                    .HasColumnType("datetime");

                entity.Property(e => e.Department)
                    .HasColumnName("department")
                    .HasColumnType("varchar(20)")
                    .HasDefaultValueSql("'0'")
                    .HasComment("0为普通员工1为超级管理员2为普通管理员")
                    .HasCharSet("utf8mb4")
                    .HasCollation("utf8mb4_general_ci");

                entity.Property(e => e.Email)
                    .HasColumnName("email")
                    .HasColumnType("varchar(30)")
                    .HasCharSet("utf8mb4")
                    .HasCollation("utf8mb4_general_ci");

                entity.Property(e => e.EndEffective)
                    .HasColumnName("end_effective")
                    .HasColumnType("datetime")
                    .HasComment("默认一年");

                entity.Property(e => e.Id)
                    .HasColumnName("id")
                    .HasDefaultValueSql("'0'");

                entity.Property(e => e.Idcard)
                    .HasColumnName("idcard")
                    .HasColumnType("varchar(18)")
                    .HasComment("最长18个字符")
                    .HasCharSet("utf8mb4")
                    .HasCollation("utf8mb4_general_ci");

                entity.Property(e => e.Infractions)
                    .HasColumnName("infractions")
                    .HasDefaultValueSql("'0'")
                    .HasComment("违规次数");

                entity.Property(e => e.Insurance)
                    .HasColumnName("insurance")
                    .HasColumnType("varchar(20)")
                    .HasComment("保险")
                    .HasCharSet("utf8mb4")
                    .HasCollation("utf8mb4_general_ci");

                entity.Property(e => e.Issued)
                    .HasColumnName("issued")
                    .HasColumnType("int(1) unsigned zerofill")
                    .HasDefaultValueSql("'0'")
                    .HasComment("不需要");

                entity.Property(e => e.MainStaff)
                    .HasColumnName("main_staff")
                    .HasComment("不需要");

                entity.Property(e => e.Nation)
                    .HasColumnName("nation")
                    .HasColumnType("varchar(10)")
                    .HasComment("民族")
                    .HasCharSet("utf8mb4")
                    .HasCollation("utf8mb4_general_ci");

                entity.Property(e => e.PassTime)
                    .HasColumnName("passTime")
                    .HasColumnType("datetime");

                entity.Property(e => e.PassType)
                    .IsRequired()
                    .HasColumnName("passType")
                    .HasColumnType("varchar(10)")
                    .HasComment("进入;出去")
                    .HasCharSet("utf8mb4")
                    .HasCollation("utf8mb4_general_ci");

                entity.Property(e => e.Password)
                    .HasColumnName("password")
                    .HasColumnType("varchar(50)")
                    .HasCharSet("utf8mb4")
                    .HasCollation("utf8mb4_general_ci");

                entity.Property(e => e.Phone)
                    .HasColumnName("phone")
                    .HasColumnType("varchar(13)")
                    .HasCharSet("utf8mb4")
                    .HasCollation("utf8mb4_general_ci");

                entity.Property(e => e.Photo)
                    .HasColumnName("photo")
                    .HasColumnType("longtext")
                    .HasComment("图片转base64")
                    .HasCharSet("utf8mb4")
                    .HasCollation("utf8mb4_general_ci");

                entity.Property(e => e.ProjectName)
                    .HasColumnName("projectName")
                    .HasColumnType("varchar(50)")
                    .HasCharSet("utf8mb4")
                    .HasCollation("utf8mb4_general_ci");

                entity.Property(e => e.Projectid).HasColumnName("projectid");

                entity.Property(e => e.SafetyExam)
                    .HasColumnName("safety_exam")
                    .HasColumnType("varchar(20)")
                    .HasComment("不需要")
                    .HasCharSet("utf8mb4")
                    .HasCollation("utf8mb4_general_ci");

                entity.Property(e => e.Sex)
                    .HasColumnName("sex")
                    .HasColumnType("enum('男','女')")
                    .HasDefaultValueSql("'男'")
                    .HasComment("枚举:男\\女")
                    .HasCharSet("utf8mb4")
                    .HasCollation("utf8mb4_general_ci");

                entity.Property(e => e.StaffId)
                    .HasColumnName("staff_id")
                    .HasColumnType("varchar(20)")
                    .HasComment("不需要")
                    .HasCharSet("utf8mb4")
                    .HasCollation("utf8mb4_general_ci");

                entity.Property(e => e.StartEffective)
                    .HasColumnName("start_effective")
                    .HasColumnType("datetime")
                    .HasComment("起始时间当天");

                entity.Property(e => e.State)
                    .HasColumnName("state")
                    .HasDefaultValueSql("'1'")
                    .HasComment("用户状态:0删除;1在职;2离职/调岗");

                entity.Property(e => e.TeamId)
                    .HasColumnName("team_id")
                    .HasComment("不需要");

                entity.Property(e => e.UpdateTime)
                    .HasColumnName("update_time")
                    .HasColumnType("datetime");

                entity.Property(e => e.Username)
                    .HasColumnName("username")
                    .HasColumnType("varchar(20)")
                    .HasDefaultValueSql("''")
                    .HasCharSet("utf8mb4")
                    .HasCollation("utf8mb4_general_ci");

                entity.Property(e => e.Usertype)
                    .HasColumnName("usertype")
                    .HasComment("人员类型：56 为施工人员 57 为业主人员 58 为监理人员 62 为临时人员");

                entity.Property(e => e.WorkType)
                    .HasColumnName("work_type")
                    .HasColumnType("varchar(20)")
                    .HasComment("工种;下拉选择 填入文字")
                    .HasCharSet("utf8mb4")
                    .HasCollation("utf8mb4_general_ci");
            });

            modelBuilder.Entity<VAlarm>(entity =>
            {
                entity.HasNoKey();

                entity.ToView("v_alarm");

                entity.Property(e => e.Action)
                    .HasColumnName("action")
                    .HasColumnType("enum('进','出')")
                    .HasCharSet("utf8mb4")
                    .HasCollation("utf8mb4_general_ci");

                entity.Property(e => e.AlarmType)
                    .HasColumnName("alarm_type")
                    .HasComment("报警类型");

                entity.Property(e => e.CreateTime)
                    .HasColumnName("create_time")
                    .HasColumnType("datetime");

                entity.Property(e => e.DataValue)
                    .HasColumnName("data_value")
                    .HasColumnType("varchar(20)")
                    .HasComment("数据值")
                    .HasCharSet("utf8mb4")
                    .HasCollation("utf8mb4_general_ci");

                entity.Property(e => e.Id).HasColumnName("id");

                entity.Property(e => e.ImgUrl)
                    .IsRequired()
                    .HasColumnName("img_url")
                    .HasColumnType("mediumtext")
                    .HasComment("阿里云图片地址")
                    .HasCharSet("utf8mb4")
                    .HasCollation("utf8mb4_general_ci");

                entity.Property(e => e.Phone)
                    .HasColumnName("phone")
                    .HasColumnType("varchar(18)")
                    .HasComment("手机号（人填）")
                    .HasCharSet("utf8mb4")
                    .HasCollation("utf8mb4_general_ci");

                entity.Property(e => e.ProjectId)
                    .HasColumnName("project_id")
                    .HasComment("项目id");

                entity.Property(e => e.ProjectName)
                    .HasColumnName("project_name")
                    .HasColumnType("varchar(255)")
                    .HasComment("工程名称")
                    .HasCharSet("utf8mb4")
                    .HasCollation("utf8mb4_general_ci");

                entity.Property(e => e.Status)
                    .HasColumnName("status")
                    .HasComment("项目负责人未处理为0，已处理为1");

                entity.Property(e => e.Type)
                    .HasColumnName("type")
                    .HasComment("告警来源  人闸为0  车闸为1");

                entity.Property(e => e.Username)
                    .HasColumnName("username")
                    .HasColumnType("varchar(20)")
                    .HasDefaultValueSql("''")
                    .HasCharSet("utf8mb4")
                    .HasCollation("utf8mb4_general_ci");
            });

            modelBuilder.Entity<VDevice>(entity =>
            {
                entity.HasNoKey();

                entity.ToView("v_device");

                entity.Property(e => e.CreateTime)
                    .HasColumnName("create_time")
                    .HasColumnType("datetime");

                entity.Property(e => e.CreateUserId).HasColumnName("createUserId");

                entity.Property(e => e.DeviceDescription)
                    .HasColumnName("device_description")
                    .HasColumnType("varchar(255)")
                    .HasComment("设备型号描述")
                    .HasCharSet("utf8mb4")
                    .HasCollation("utf8mb4_general_ci");

                entity.Property(e => e.DeviceName)
                    .IsRequired()
                    .HasColumnName("device_name")
                    .HasColumnType("varchar(200)")
                    .HasComment("设备名称")
                    .HasCharSet("utf8mb4")
                    .HasCollation("utf8mb4_general_ci");

                entity.Property(e => e.DevicePrice)
                    .HasColumnName("device_price")
                    .HasColumnType("decimal(10,2)")
                    .HasComment("设备价格");

                entity.Property(e => e.DeviceState)
                    .IsRequired()
                    .HasColumnName("device_state")
                    .HasColumnType("varchar(3)")
                    .HasDefaultValueSql("''")
                    .HasCharSet("utf8")
                    .HasCollation("utf8_general_ci");

                entity.Property(e => e.DeviceType)
                    .HasColumnName("device_type")
                    .HasComment("设备归类");

                entity.Property(e => e.Id).HasColumnName("id");

                entity.Property(e => e.ProjectId).HasColumnName("project_id");

                entity.Property(e => e.Remark)
                    .HasColumnName("remark")
                    .HasColumnType("varchar(255)")
                    .HasComment("异常备注")
                    .HasCharSet("utf8mb4")
                    .HasCollation("utf8mb4_general_ci");

                entity.Property(e => e.SerialNumber)
                    .HasColumnName("serial_number")
                    .HasColumnType("varchar(30)")
                    .HasComment("设备序列号")
                    .HasCharSet("utf8mb4")
                    .HasCollation("utf8mb4_general_ci");

                entity.Property(e => e.TypeName)
                    .HasColumnName("typeName")
                    .HasColumnType("varchar(20)")
                    .HasComment("类型名称")
                    .HasCharSet("utf8mb4")
                    .HasCollation("utf8mb4_general_ci");

                entity.Property(e => e.UpdateTime)
                    .HasColumnName("update_time")
                    .HasColumnType("datetime");

                entity.Property(e => e.UserId)
                    .HasColumnName("user_id")
                    .HasComment("外键 - t_userinfo的id");

                entity.Property(e => e.Username)
                    .HasColumnName("username")
                    .HasColumnType("varchar(20)")
                    .HasDefaultValueSql("''")
                    .HasCharSet("utf8mb4")
                    .HasCollation("utf8mb4_general_ci");
            });

            modelBuilder.Entity<VUserProjectinfo>(entity =>
            {
                entity.HasNoKey();

                entity.ToView("v_user_projectinfo");

                entity.Property(e => e.Id).HasColumnName("id");

                entity.Property(e => e.Phone)
                    .IsRequired()
                    .HasColumnName("phone")
                    .HasColumnType("varchar(13)")
                    .HasCharSet("utf8mb4")
                    .HasCollation("utf8mb4_general_ci");

                entity.Property(e => e.ProjectId).HasColumnName("projectId");

                entity.Property(e => e.ProjectName)
                    .IsRequired()
                    .HasColumnName("projectName")
                    .HasColumnType("varchar(255)")
                    .HasDefaultValueSql("''")
                    .HasCharSet("utf8mb4")
                    .HasCollation("utf8mb4_general_ci");
            });

            modelBuilder.Entity<VWxuserinfo>(entity =>
            {
                entity.HasNoKey();

                entity.ToView("v_wxuserinfo");

                entity.Property(e => e.BlackList)
                    .HasColumnName("black_list")
                    .HasDefaultValueSql("'0'")
                    .HasComment("黑名单，1为黑名单用户，0为正常用户");

                entity.Property(e => e.Department)
                    .HasColumnName("department")
                    .HasColumnType("varchar(20)")
                    .HasDefaultValueSql("'0'")
                    .HasComment("0为普通员工1为超级管理员2为普通管理员")
                    .HasCharSet("utf8mb4")
                    .HasCollation("utf8mb4_general_ci");

                entity.Property(e => e.Id).HasColumnName("id");

                entity.Property(e => e.Phone)
                    .IsRequired()
                    .HasColumnName("phone")
                    .HasColumnType("varchar(13)")
                    .HasCharSet("utf8mb4")
                    .HasCollation("utf8mb4_general_ci");

                entity.Property(e => e.ProjectId).HasColumnName("project_id");

                entity.Property(e => e.UserType)
                    .HasColumnName("user_type")
                    .HasComment("人员类型：56 为施工人员 57 为业主人员 58 为监理人员 62 为临时人员");

                entity.Property(e => e.Username)
                    .IsRequired()
                    .HasColumnName("username")
                    .HasColumnType("varchar(20)")
                    .HasDefaultValueSql("''")
                    .HasCharSet("utf8mb4")
                    .HasCollation("utf8mb4_general_ci");

                entity.Property(e => e.WorkType)
                    .IsRequired()
                    .HasColumnName("work_type")
                    .HasColumnType("varchar(20)")
                    .HasComment("工种;下拉选择 填入文字")
                    .HasCharSet("utf8mb4")
                    .HasCollation("utf8mb4_general_ci");
            });

            OnModelCreatingPartial(modelBuilder);
        }

        partial void OnModelCreatingPartial(ModelBuilder modelBuilder);
    }
}
